home *** CD-ROM | disk | FTP | other *** search
/ Windows 95 API Bible / Windows 95 API Bible 3 Disc Set.iso / Win32 API Bible Book 1 of 3 / CHAPTE22 / EX7.C < prev    next >
C/C++ Source or Header  |  1995-05-27  |  1KB  |  47 lines

  1. #include <genstub.c>
  2. #include <winnls.h>
  3.  
  4. BOOL CALLBACK EnumLocales( LPTSTR lpLocaleString )
  5. {
  6.    LCID lcid;
  7.    TCHAR szBuffer[400];
  8.    TCHAR szCountry[96];
  9.    TCHAR szLanguage[96];
  10.  
  11.    WideCharToMultiByte( CP_ACP, 0, lpLocaleString, -1, szBuffer, 255, NULL, NULL );
  12.    sscanf( (LPSTR) lpLocaleString, "%x", &lcid );
  13.  
  14.    // now get locale data
  15.    GetLocaleInfo( lcid, LOCALE_SNATIVECTRYNAME, szCountry, 96 );
  16.    GetLocaleInfo( lcid, LOCALE_SNATIVELANGNAME, szLanguage, 96 );
  17.  
  18.    wsprintf( szBuffer, "Locale: %d, Country: %s, Language: %s",
  19.              lcid, szCountry, szLanguage );
  20.    MessageBox( NULL, szBuffer, "Enumeration of Locales", MB_OK );
  21.    return TRUE;
  22. }
  23.  
  24. LRESULT CALLBACK WndProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
  25. {
  26.    static BOOL bFlag = LCID_INSTALLED;
  27.    switch (uMsg)
  28.    {
  29.          case WM_COMMAND:
  30.                switch ( LOWORD( wParam )  )
  31.                {
  32.                      case IDM_TEST:
  33.                            EnumSystemLocales( EnumLocales, LCID_INSTALLED );
  34.                            break;
  35.                      case IDM_EXIT:
  36.                            DestroyWindow( hWnd );
  37.                            break;
  38.                }
  39.                break;
  40.          case WM_DESTROY:
  41.                PostQuitMessage( 0 );
  42.                break;
  43.          default:
  44.               return (DefWindowProc(hWnd, uMsg, wParam, lParam));
  45.    }
  46.    return (NULL);
  47. }